home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / ASM-PPC / KEYBOARD.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  5KB  |  180 lines

  1. /*
  2.  *  linux/include/asm-ppc/keyboard.h
  3.  *
  4.  *  Created 3 Nov 1996 by Geert Uytterhoeven
  5.  *  Modified for Power Macintosh by Paul Mackerras
  6.  */
  7.  
  8. /*
  9.  * This file contains the ppc architecture specific keyboard definitions -
  10.  * like the intel pc for prep systems, different for power macs.
  11.  */
  12.  
  13. #ifndef __ASMPPC_KEYBOARD_H
  14. #define __ASMPPC_KEYBOARD_H
  15.  
  16. #ifdef __KERNEL__
  17.  
  18. #include <linux/config.h>
  19. #include <asm/adb.h>
  20.  
  21. #ifdef CONFIG_APUS
  22. #include <asm-m68k/keyboard.h>
  23. #else
  24.  
  25. #define KEYBOARD_IRQ            1
  26. #define DISABLE_KBD_DURING_INTERRUPTS    0
  27. #define INIT_KBD
  28.  
  29. extern int mackbd_setkeycode(unsigned int scancode, unsigned int keycode);
  30. extern int mackbd_getkeycode(unsigned int scancode);
  31. extern int mackbd_pretranslate(unsigned char scancode, char raw_mode);
  32. extern int mackbd_translate(unsigned char scancode, unsigned char *keycode,
  33.                char raw_mode);
  34. extern int mackbd_unexpected_up(unsigned char keycode);
  35. extern void mackbd_leds(unsigned char leds);
  36. extern void mackbd_init_hw(void);
  37.  
  38. extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
  39. extern int pckbd_getkeycode(unsigned int scancode);
  40. extern int pckbd_pretranslate(unsigned char scancode, char raw_mode);
  41. extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
  42.                char raw_mode);
  43. extern char pckbd_unexpected_up(unsigned char keycode);
  44. extern void pckbd_leds(unsigned char leds);
  45. extern void pckbd_init_hw(void);
  46.  
  47. static inline int kbd_setkeycode(unsigned int scancode, unsigned int keycode)
  48. {
  49.     if ( is_prep || (_machine == _MACH_mbx) )
  50.         return pckbd_setkeycode(scancode,keycode);
  51.     else if ( is_chrp )
  52. #ifndef CONFIG_MAC_KEYBOARD
  53.         return pckbd_setkeycode(scancode,keycode);
  54. #else
  55.         /* I'm not actually sure if it's legal to have a CHRP machine
  56.          * without an ADB controller. In any case, this should really
  57.          * be changed to be a test to see if an ADB _keyboard_ exists
  58.          * (not just a controller), but that's another story for
  59.          * another night.
  60.          */
  61.         if ( adb_hardware == ADB_NONE )
  62.             return pckbd_setkeycode(scancode,keycode);
  63.         else
  64.             return mackbd_setkeycode(scancode,keycode);
  65. #endif
  66.     else
  67.         return mackbd_setkeycode(scancode,keycode);
  68. }
  69.  
  70. static inline int kbd_getkeycode(unsigned int x)
  71. {
  72.     if ( is_prep || (_machine == _MACH_mbx) )
  73.         return pckbd_getkeycode(x);
  74.     else if ( is_chrp )
  75. #ifndef CONFIG_MAC_KEYBOARD
  76.         return pckbd_getkeycode(x);
  77. #else
  78.         if ( adb_hardware == ADB_NONE )
  79.             return pckbd_getkeycode(x);
  80.         else
  81.             return mackbd_getkeycode(x);
  82. #endif
  83.     else
  84.         return mackbd_getkeycode(x);
  85. }
  86.  
  87. static inline int kbd_pretranslate(unsigned char x,char y)
  88. {
  89.     if ( is_prep || (_machine == _MACH_mbx) )
  90.         return pckbd_pretranslate(x,y);
  91.     else if ( is_chrp )
  92. #ifndef CONFIG_MAC_KEYBOARD
  93.         return pckbd_pretranslate(x,y);
  94. #else
  95.         if ( adb_hardware == ADB_NONE )
  96.             return pckbd_pretranslate(x,y);
  97.         else
  98.             return mackbd_pretranslate(x,y);
  99. #endif
  100.     else
  101.         return mackbd_pretranslate(x,y);
  102. }
  103.  
  104. static inline int kbd_translate(unsigned char keycode, unsigned char *keycodep,
  105.              char raw_mode)
  106. {
  107.     if ( is_prep || (_machine == _MACH_mbx) )
  108.         return pckbd_translate(keycode,keycodep,raw_mode);
  109.     else if ( is_chrp )
  110. #ifndef CONFIG_MAC_KEYBOARD
  111.         return pckbd_translate(keycode,keycodep,raw_mode);
  112. #else
  113.         if ( adb_hardware == ADB_NONE )
  114.             return pckbd_translate(keycode,keycodep,raw_mode);
  115.         else
  116.             return mackbd_translate(keycode,keycodep,raw_mode);
  117. #endif
  118.     else
  119.         return mackbd_translate(keycode,keycodep,raw_mode);
  120.     
  121. }
  122.  
  123. static inline int kbd_unexpected_up(unsigned char keycode)
  124. {
  125.     if ( is_prep || (_machine == _MACH_mbx) )
  126.         return pckbd_unexpected_up(keycode);
  127.     else if ( is_chrp )
  128. #ifndef CONFIG_MAC_KEYBOARD
  129.         return pckbd_unexpected_up(keycode);
  130. #else
  131.         if ( adb_hardware == ADB_NONE )
  132.             return pckbd_unexpected_up(keycode);
  133.         else
  134.             return mackbd_unexpected_up(keycode);
  135. #endif
  136.     else
  137.         return mackbd_unexpected_up(keycode);
  138.     
  139. }
  140.  
  141. static inline void kbd_leds(unsigned char leds)
  142. {
  143.     if ( is_prep || (_machine == _MACH_mbx) )
  144.         pckbd_leds(leds);
  145.     else if ( is_chrp )
  146. #ifndef CONFIG_MAC_KEYBOARD
  147.         pckbd_leds(leds);
  148. #else
  149.         if ( adb_hardware == ADB_NONE )
  150.             pckbd_leds(leds);
  151.         else
  152.             mackbd_leds(leds);
  153. #endif
  154.     else
  155.         mackbd_leds(leds);
  156. }
  157.  
  158. static inline void kbd_init_hw(void)
  159. {
  160.     if ( is_prep || (_machine == _MACH_mbx) )
  161.         pckbd_init_hw();
  162.     else if ( is_chrp )
  163. #ifndef CONFIG_MAC_KEYBOARD
  164.         pckbd_init_hw();
  165. #else
  166.         if ( adb_hardware == ADB_NONE )
  167.             pckbd_init_hw();
  168.         else
  169.             mackbd_init_hw();
  170. #endif
  171.     else
  172.         mackbd_init_hw();
  173. }
  174.  
  175. #endif /* CONFIG_APUS */
  176.  
  177. #endif /* __KERNEL__ */
  178.  
  179. #endif /* __ASMPPC_KEYBOARD_H */
  180.